home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ETO Development Tools 4
/
ETO Development Tools 4.iso
/
Tools - Objects
/
MacApp
/
MacApp 3.0a2
/
CPlusIncludes
/
Terminals.h
< prev
next >
Wrap
Text File
|
1991-05-01
|
7KB
|
263 lines
/*
File: Terminals.h
Contains: C Interface to the Terminal Manager
Copyright: © 1988-1990 by Apple Computer, Inc.
All rights reserved.
*/
#ifndef __TERMINALS__
#define __TERMINALS__
#ifndef __DIALOGS__
#include <Dialogs.h>
#endif __DIALOGS__
#ifndef __GEOMETRY__
#include <Geometry.h>
#endif
#ifndef __CTBUTILITIES__
#include <CTBUtilities.h>
#endif __CTBUTILITIES__
#ifndef __CONNECTIONS__
#include <Connections.h>
#endif __CONNECTIONS__
/* current Terminal Manager version */
#define curTMVersion 2
/* current Terminal Manager Environment Record version */
#define curTermEnvRecVers 0
/* error codes */
typedef OSErr TMErr;
#define tmGenericError (-1)
#define tmNoErr 0
#define tmNotSent 1
#define tmEnvironsChanged 2
#define tmNotSupported 7
#define tmNoTools 8
/* TMFlags */
typedef long TMFlags;
enum {
tmInvisible = 1 << 0,
tmSaveBeforeClear = 1 << 1,
tmNoMenus = 1 << 2,
tmAutoScroll = 1 << 3
};
/* TMSelTypes & TMSearchTypes */
typedef short TMSelTypes;
typedef short TMSearchTypes;
enum {
selTextNormal = 1 << 0,
selTextBoxed = 1 << 1,
selGraphicsMarquee = 1 << 2,
selGraphicsLasso = 1 << 3,
tmSearchNoDiacrit = 1 << 8, /* These are only for TMSearchTypes */
tmSearchNoCase = 1 << 9
};
/* TMCursorTypes */
typedef short TMCursorTypes;
enum {
cursorText = 1,
cursorGraphics = 2
};
/* TMTermTypes */
typedef short TMTermTypes;
enum {
tmTextTerminal = 1 << 0,
tmGraphicsTerminal = 1 << 1
};
struct TermDataBlock {
TMTermTypes flags;
Handle theData;
Handle auxData;
long reserved;
};
typedef struct TermDataBlock TermDataBlock;
typedef TermDataBlock *TermDataBlockPtr, **TermDataBlockH;
struct TermEnvironRec {
short version;
TMTermTypes termType;
short textRows;
short textCols;
Point cellSize;
Rect graphicSize;
Point slop;
Rect auxSpace;
};
typedef TermEnvironRec *TermEnvironPtr;
union TMSelection {
SimpleRect selRect;
RgnHandle selRgnHandle;
};
/* TMChoose data structures */
struct TMChooseRec {
long reserved;
long msg;
ProcPtr idleProc;
ProcPtr filterProc;
Str63 newTool;
Ptr newConfig;
ProcPtr eventProc;
};
typedef TMChooseRec *TMChooseRecPtr;
/* TMChooseRec messages */
#define tmChooseNochange 1
#define tmChooseBackdoor 2
struct TermRecord {
short procID;
TMFlags flags;
TMErr errCode;
long refCon;
long userData;
ProcPtr defProc;
Ptr config;
Ptr oldConfig;
ProcPtr environsProc;
long reserved1;
long reserved2;
Ptr tmPrivate;
ProcPtr sendProc;
ProcPtr breakProc;
ProcPtr cacheProc;
ProcPtr clikLoop;
WindowPtr owner;
Rect termRect;
Rect viewRect;
Rect visRect;
long lastIdle;
TMSelection selection;
TMSelTypes selType;
long mluField;
};
typedef TermRecord **TermHandle, *TermPtr;
#ifdef __cplusplus
extern "C" {
#endif
pascal TMErr InitTM(void);
pascal Handle TMGetVersion(TermHandle hTerm);
pascal short TMGetTMVersion(void);
pascal TermHandle TMNew(const Rect& termRect, const Rect& viewRect, TMFlags flags,
short procID, WindowPtr owner, ProcPtr sendProc,
ProcPtr cacheProc, ProcPtr breakProc, ProcPtr clikLoop, ProcPtr environsProc,
long refCon, long userData);
pascal void TMDispose(TermHandle hTerm);
pascal void TMKey(TermHandle hTerm, const EventRecord& theEvent);
pascal void TMUpdate(TermHandle hTerm, RgnHandle visRgn);
pascal void TMPaint(TermHandle hTerm, const TermDataBlock& theTermData, const Rect& theRect);
pascal void TMActivate(TermHandle hTerm, Boolean activate);
pascal void TMResume(TermHandle hTerm, Boolean resume);
pascal void TMClick(TermHandle hTerm, const EventRecord& theEvent);
pascal void TMIdle(TermHandle hTerm);
pascal long TMStream(TermHandle hTerm, void *theBuffer, long theLength, CMFlags flags);
pascal Boolean TMMenu(TermHandle hTerm, short menuID, short item);
pascal void TMReset(TermHandle hTerm);
pascal void TMClear(TermHandle hTerm);
pascal void TMResize(TermHandle hTerm, const Rect& newViewRect);
pascal long TMGetSelect(TermHandle hTerm, Handle theData, ResType& theType);
pascal void TMGetLine(TermHandle hTerm, short lineNo, TermDataBlock& theTermData);
pascal void TMSetSelection(TermHandle hTerm, const TMSelection& theSelection, TMSelTypes selType);
pascal void TMScroll(TermHandle hTerm, short dh, short dv);
pascal Boolean TMValidate(TermHandle hTerm);
pascal void TMDefault(Ptr& theConfig, short procID, Boolean allocate);
pascal Handle TMSetupPreflight(short procID, long& magicCookie);
pascal void TMSetupSetup(short procID, const void *theConfig, short count, DialogPtr theDialog,
long& magicCookie);
pascal Boolean TMSetupFilter(short procID, const void *theConfig, short count, DialogPtr theDialog,
EventRecord& theEvent, short& theItem, long& magicCookie);
pascal void TMSetupItem(short procID, const void *theConfig, short count, DialogPtr theDialog,
short& theItem, long& magicCookie);
pascal void TMSetupCleanup(short procID, const void *theConfig, short count, DialogPtr theDialog,
long& magicCookie);
pascal void TMSetupXCleanup(short procID, const void *theConfig, short count, DialogPtr theDialog,
Boolean OKed, long& magicCookie );
pascal void TMSetupPostflight(short procID);
pascal Ptr TMGetConfig(TermHandle hTerm);
pascal short TMSetConfig(TermHandle hTerm, const void *thePtr);
pascal OSErr TMIntlToEnglish(TermHandle hTerm, const void *inputPtr, Ptr& outputPtr, short language);
pascal OSErr TMEnglishToIntl(TermHandle hTerm, const void *inputPtr, Ptr& outputPtr, short language);
pascal void TMGetToolName(short id, Str255 name);
pascal short TMGetProcID(ConstStr255Param name);
pascal void TMSetRefCon(TermHandle hTerm, long refCon);
pascal long TMGetRefCon(TermHandle hTerm);
pascal void TMSetUserData(TermHandle hTerm, long userData);
pascal long TMGetUserData(TermHandle hTerm);
pascal short TMAddSearch(TermHandle hTerm, ConstStr255Param theString, const Rect& where,
TMSearchTypes searchType, ProcPtr callBack);
pascal void TMRemoveSearch(TermHandle hTerm, short refnum);
pascal void TMClearSearch(TermHandle hTerm);
pascal Point TMGetCursor(TermHandle hTerm, TMCursorTypes cursType);
pascal TMErr TMGetTermEnvirons(TermHandle hTerm, TermEnvironRec& theEnvirons);
pascal short TMChoose(TermHandle& hTerm, Point where, ProcPtr idleProc);
pascal short TMPChoose(TermHandle& hTerm, Point where, TMChooseRec& cRec);
pascal void TMEvent(TermHandle hTerm, const EventRecord& theEvent);
pascal Boolean TMDoTermKey(TermHandle hTerm, ConstStr255Param theKey);
pascal short TMCountTermKeys(TermHandle hTerm);
pascal void TMGetIndTermKey(TermHandle hTerm, short id, Str255& theKey);
pascal void TMGetErrorString(TermHandle hTerm, short id, Str255& errMsg);
#ifdef __cplusplus
}
#endif
#endif __TERMINALS__